var listaCompleta;


var prov = prov || {
    urlServicioId:'/dosideas-jee001-workshop/app/provincia/',
    urlServicioNombre:'/dosideas-jee001-workshop/app/provincia/nombre/',
    urlServicioTodas:'/dosideas-jee001-workshop/app/provincia/todas/',

    exito: (function(data){
        ocultarMensajesDeError();
        var tbody = $("#tablaProvincias tbody");
        $("tr", tbody).remove();
        $('#provinciasTemplate')
        .tmpl(data)
        .appendTo(tbody);
    }),
    error:(function(){
        console.log("Error al obtener el servicio.");
        var tbody = $("#tablaProvincias tbody");
        $("tr", tbody).remove();
        $('#divMensajeError').show();
    }),

    setListado:(function(valor){
        listaCompleta = valor;
        prov.exito(listaCompleta);
    }),
    actualizar: (function(){
        servicioRest.get(prov.urlServicioTodas,this.setListado,this.error);
    }),
    limpiarElemento: (function(idElemento){
        limpiarTexto(document.getElementById(idElemento));
    }),
    buscarPorId:(function(idProvincia){
        prov.limpiarElemento('tNombreProvincia');
        if(verificaciones.idNumerico(idProvincia)){
            var listaCoincidencias = [];
            for(i=0;i<listaCompleta.length;i++){
                actual = listaCompleta[i].id;
                if(actual == idProvincia){
                    listaCoincidencias.push(listaCompleta[i]);
                }
            }
            prov.exito(listaCoincidencias);
        }
    }),
    buscarPorNombre:(function(nombreProvincia){
        prov.limpiarElemento('tIdProvincia');
        var listaCoincidencias = [];
        nombreProvincia = nombreProvincia.toLowerCase();

        for(i=0;i<listaCompleta.length;i++){
            actual = listaCompleta[i].nombre.toLowerCase();
            if(actual.indexOf(nombreProvincia) != -1){
                listaCoincidencias.push(listaCompleta[i]);
            }
        }
        prov.exito(listaCoincidencias);
    })
};


function limpiarCriterios(){
    limpiarTexto(document.getElementById('tIdProvincia'));
    limpiarTexto(document.getElementById('tNombreProvincia'));
    prov.exito(listaCompleta);
}

var verificaciones = verificaciones || {
    idNumerico: (function(parametro){
        ocultarMensajes();
        var mensajes=new Array;

        if(!isNaN(parametro)){
            return true;
        }
        else{
            mensajeIdNumerico = {
                mensaje: 'El id debe ser numérico'
            };
            mensajes.push(mensajeIdNumerico);
            mostrarMensajesError(mensajes);
        }
        return false;
    }
    )
};


$(document).ready(function() {
    ocultarMensajesDeError();
    prov.actualizar();
});